"""
热量消耗记录表
"""

from app.db import db


class KcalRecord(db.Model):
    # 定义表名
    __tablename__ = 'kcal_record'
    # 主键
    id = db.Column(db.Integer, primary_key=True)
    # 用户id
    user_id = db.Column(db.Integer, db.ForeignKey('user_info.id'))
    # 记录日期
    kcal_date = db.Column(db.Date)

    # 食物摄入热量kcal
    food_intake_kcal = db.Column(db.Float)
    # 运动消耗热量kcal
    sport_consume_kcal = db.Column(db.Float)
    # 实际热量缺口kcal
    act_kcal_gap = db.Column(db.Float)
    # 理论可减体重/kg
    ideal_sub_weight = db.Column(db.Float)

    def to_dict(self):
        """将模型实例转换为字典，方便后续处理（如转换为DataFrame或JSON）"""
        base_dict = {c.name: getattr(self, c.name, None) for c in self.__table__.columns}
        # 单独处理日期字段：格式化 charger_date 为 年月日
        if base_dict.get('date'):
            # 格式1：2025-09-01（推荐，符合ISO标准，前端易处理）
            base_dict['date'] = base_dict['date'].strftime('%Y-%m-%d')
        return base_dict
